
package fragment;

import fragment.QuasiComponentMessageHandler;
import fragment.QuasiComponentLifeCycle;
import fragment.QuasiComponentGeneration;
import fragment.QuasiComponentReservation;
import fragment.QuasiComponentStimulation;
import fragment.QuasiComponentProcessHandler;
import fragment.QuasiComponentContactHandler;
import fragment.QuasiComponentExternalViewer;
import fragment.QuasiComponentBehavior;


public class Fragment {

	private FragmentMediator mediator;

	public Fragment(QuasiComponentMessageHandler _MessageHandler, QuasiComponentLifeCycle _LifeCycle, QuasiComponentGeneration _Generation, QuasiComponentReservation _Reservation, QuasiComponentStimulation _Stimulation, QuasiComponentProcessHandler _ProcessHandler, QuasiComponentContactHandler _ContactHandler, QuasiComponentExternalViewer _ExternalViewer, QuasiComponentBehavior _Behavior) {
		mediator = new FragmentMediator(_MessageHandler, _LifeCycle, _Generation, _Reservation, _Stimulation, _ProcessHandler, _ContactHandler, _ExternalViewer, _Behavior);
	}
	
	public void start() {
		mediator.start();
	}


	public void send(message.Message message) {
		 mediator.send(message);
	}

	public int getCurrentStimulation() {
		return mediator.getCurrentStimulation();
	}

	public java.util.Vector<java.lang.String> getGenerationCapabilities() {
		return mediator.getGenerationCapabilities();
	}

	public java.util.Vector<java.lang.String> requiredElements() {
		return mediator.requiredElements();
	}

	public java.lang.String getId() {
		return mediator.getId();
	}

	public fragment.AgentState currentState() {
		return mediator.currentState();
	}

	public long currentProcess() {
		return mediator.currentProcess();
	}

}
